Switching to the Dutch language

In section [*] the names of macros needed to switch to a language have been described. In figure [*] these macros and their definition are shown for the Dutch language.
Figure: The macros needed to switch to the Dutch language
\begin{figure*}\begin{verbatim}\def\captionsdutch{\gdef\refname{Referenties}%
...
...itize\original@sanitize
\global\let\uml \dieresis
}\end{verbatim}
\end{figure*}

The definitions of \captionsdutch and \datedutch are pretty straightforward and need not be discussed. The macro \extrasdutch will be discussed in some more detail.

First, because for Dutch (as well as for German) the " character is made active, the LATEX macros \dospecials and \@sanitize have to be redefined to include this character as well. The new definitions are implemented as two special commands, so we globally \let the originals to their new versions. Then the " character is made active and is defined. Then, to prevent an error when \" appears in a moving argument, the macro \" is redefined and made robust. All this is done inside a group to keep the category code change for the " character local.

The macro \extrasdutch has a counterpart, \noextrasdutch, that cancels the extra definitions made by \extrasdutch. It changes the \catcode of the " character back to `other' and globally \lets the macros \dospecials and \@sanitize to their original definitions. The original definition of \" is restored as well.

In figure [*] the code needed to redefine \dospecials and \@makeother is shown.

Figure: Code needed for the redefinition of \dospecials and \@makeother.
\begin{figure*}\begin{verbatim}\begingroup
\def\do{\noexpand\do\noexpand}%
\...
...s\dospecials
\global\let\original@sanitize\@sanitize\end{verbatim}
\end{figure*}